QA: run_qa v1.6 form + ExplicitImports#64
Draft
ChrisRackauckas-Claude wants to merge 2 commits into
Draft
Conversation
Convert test/qa/qa.jl to the SciMLTesting v1.6 run_qa form. Aqua and ExplicitImports are auto-detected from SciMLTesting's own deps; JET is opt-in via `using JET`. Enable ExplicitImports (`explicit_imports = true`) and run all six EI checks. Findings: - no_implicit_imports: kept tracked-broken via `ei_broken = (:no_implicit_imports,)`. The 24 implicit names come from heavy re-exporting umbrellas (ModelingToolkit, DomainSets, OrdinaryDiffEq, Interpolations) whose owner packages (Symbolics/ModelingToolkitBase/IntervalSets/SciMLBase/CommonSolve) reshuffle names across releases, and two flagged names (`limit`, `domain`) are local definitions. Tracked in SciML#63. - all_qualified_accesses_are_public: ignore `seed!` (Random.seed!, canonical stdlib API not declared `public`). - The other four EI checks pass. JET typo-mode config and its rationale comment are preserved. SciMLTesting compat bumped to "1.6". ExplicitImports is not added to the QA deps (transitive via SciMLTesting); Aqua and JET remain direct deps (Aqua.test_ambiguities child-proc needs Aqua direct; JET runs). Verified locally on Julia 1.10 against released SciMLTesting 1.6.0 with the local package developed by path (mirroring the run_tests folder-model lane): Quality Assurance 17 Pass, 1 Broken, 0 Fail, 0 Error. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…reteSolve precompile)
The Downgrade lane resolved ImplicitDiscreteSolve v2.1.1 + OrdinaryDiffEqCore
v4.3.0 on Julia 1.10. IDS 2.1.1's controller.jl:50 references
`OrdinaryDiffEqCore.CommonControllerOptions{T, NLPType}` (2 type params), but
that type only gained its second parameter in OrdinaryDiffEqCore 4.4.0 — so the
floored v4.3.0 gives `too many parameters for type`, failing precompilation of
ImplicitDiscreteSolve and cascading into ModelingToolkitBase/ModelingToolkit/
MethodOfLines/PDESystemLibrary. IDS itself fixed this in 2.1.2 by raising its
own OrdinaryDiffEqCore compat to 4.4.0, but at min-resolution the broken pair is
still reachable transitively.
Pin OrdinaryDiffEqCore >= 4.4 (test-target extra + compat) to keep the downgrade
resolve on the working pair. Verified on Julia 1.10: the downgrade resolve now
picks OrdinaryDiffEqCore 4.4.0 + ImplicitDiscreteSolve 2.1.2, and the full
test-target stack (ModelingToolkit, MethodOfLines, OrdinaryDiffEq, PDESystemLibrary)
precompiles and loads (all_systems = 427).
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
a3f34ad to
1e2000b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Please ignore until reviewed by @ChrisRackauckas.
Brings
test/qa/qa.jlonto the SciMLTesting v1.6run_qaform with ExplicitImports enabled.Changes
test/qa/qa.jl: convert to the v1.6 form. Aqua + ExplicitImports are auto-detected from SciMLTesting's own deps; JET is opt-in viausing JET.explicit_imports = trueruns all six EI checks. The prior JET:typo-mode config and its rationale comment are preserved.test/qa/Project.toml: bumpSciMLTestingcompat to"1.6". ExplicitImports is NOT added (transitive via SciMLTesting); Aqua and JET stay as direct deps (Aqua'stest_ambiguitieschild-process needs Aqua direct; JET runs).ExplicitImports findings
no_implicit_importsei_broken) — see belowno_stale_explicit_importsall_explicit_imports_via_ownersall_qualified_accesses_via_ownersall_qualified_accesses_are_publicseed!all_explicit_imports_are_publicno_implicit_imports(broken, QA: ExplicitImports no_implicit_imports tracked-broken (24 implicit names from symbolic/solver umbrellas) #63): 24 implicit names from the symbolic/solver umbrellas (ModelingToolkit,DomainSets,OrdinaryDiffEq,Interpolations). ExplicitImports reports the re-export owner (Symbolics/ModelingToolkitBase/IntervalSets/SciMLBase/CommonSolve), which reshuffles names across releases, so ausing <owner>: namerewrite would be fragile. Two flagged names (limit,domain) are local definitions inlib/, so a blanket rewrite would be wrong. Keptei_broken(auto-flags an Unexpected Pass once resolved). Tracked in QA: ExplicitImports no_implicit_imports tracked-broken (24 implicit names from symbolic/solver umbrellas) #63.all_qualified_accesses_are_public: ignoreseed!—Random.seed!is the canonical stdlib seeding API but theRandomstdlib does not declare itpublic.Verification
Run locally on Julia 1.10 against released SciMLTesting 1.6.0, with the local package developed by path (mirroring the
run_testsfolder-model QA lane):0 Fail / 0 Error. The single Broken is the tracked
no_implicit_imports.🤖 Generated with Claude Code